hello
I'm learning how to use operators:
this code compiles and works fine.
But if I want to make data private...Code:struct Item { int data; Item (const int value = 0) { data = value; } Item operator+ (const Item &item) { Item result (data + item.data); return result; } Item operator* (const Item &item) { Item result (data * item.data); return result; } };
I get:Code:class Item { private: int data; public: Item (const int value = 0) { data = value; } int & Data () { return data; } Item operator+ (const Item &item) { Item result (data + item.Data ()); return result; } Item operator* (const Item &item) { Item result (data * item.Data ()); return result; } }; int main () { Item a (3); Item b (4); Item c; c = a + b * a; return 0; }
error: passing ‘const Item’ as ‘this’ argument of ‘int& Item::Data()’ discards qualifiers
what does it mean?
thanks

